package td2.Interface;

import java.util.Set;

public class Moyenne {
	private Set<Etudiant> etudiant;

	public void saisieNote() {
		for (Etudiant e : etudiant) {
			e.saisieNotes();
		}
	}

	public String moyenneParMatiere() {
		StringBuilder retour = new StringBuilder();
		for (Matiere m : Matiere.values()) {
			double compt = 0;
			int i = 0;
			for (Etudiant e : etudiant) {
				if (e.getNotes().containsKey(m)) {
					compt += e.getNotes().get(m).getValeur();
					i++;
				}
			}
			retour.append(m.getNom() + " : " + compt / i + "\n");
		}
		return retour.toString();
	}

	public double moyenneGen() {
		double retour = 0.0;
		int compteur = 0;
		for (Matiere m : Matiere.values()) {
			double compt = 0;
			int i = 0;
			for (Etudiant e : etudiant) {
				if (e.getNotes().containsKey(m)) {
					compt += e.getNotes().get(m).getValeur();
					i++;
				}
			}
			retour += compt / i;
			compteur++;
		}
		return retour / compteur;
	}

	public String classementParMatiere() {
		StringBuilder retour = new StringBuilder();
		for (Matiere m : Matiere.values()) {

			Etudiant major = (Etudiant) etudiant.toArray()[0];
			for (Etudiant e : etudiant) {
				if (e.getNotes().containsKey(m)
						&& e.getNotes().get(m).getValeur() > major.getNotes()
								.get(m).getValeur())
					major = e;
			}

			retour.append(m.getNom() + " : " + major + "\n");
		}
		return retour.toString();
	}

	public String classementGen() {
		Etudiant major = (Etudiant) etudiant.toArray()[0];
		for (Etudiant e : etudiant) {
			if (e.comparableTo(major) == 1) {
				major = e;
			}
		}
		return major.toString();
	}

	public void setEtudiant(Set<Etudiant> etudiant) {
		this.etudiant = etudiant;
	}

	public Set<Etudiant> getEtudiant() {
		return etudiant;
	}
}
